ABC076 C - Dubious Document 2
https://atcoder.jp/contests/abc076/tasks/abc076_c
提出
code: python
s = input()
t = input()
# まずは?を埋める <- そういうわけではない、最適な埋め方がある
# 全探索ではない
解答
code: python
s = input()
t = input()
# 辞書順の小さいものを作るためにパターンマッチは後ろから実施したいので入力を反転させる
sr = s::-1
tr = t::-1
flag = False
# 全文字の組み合わせを試す
for i in range(len(s)):
for j in range(i + 1, len(s) + 1):
# tと同じ文字数の時だけ部分一致するか判定する
if (j-i) == len(t):
flag = True
#一文字ごとに判定する
for idx, k in enumerate(range(i, j)):
if srk != tridx and srk != '?':
flag = False
if flag:
#一致した位置を置換
ans = sr:i + tr + srj:
#残りの?を辞書順最小のaに置換
ans = ans.replace('?','a')
#元の順番に反転
ans = ans::-1
print(ans)
exit()
print('UNRESTORABLE')
テーマ
蟻本 2-2 Best Cow Line
メモ
/yu2ta7ka/AtCoder ABC 076 C - Dubious Document 2 (300 点)
提出
AC/WA
code: python
s = list(input())
t = list(input())
# ? にハマるか
# 残りの ? を a にする
position = -1
flag = False
if len(s) - len(t) < 0:
print("UNRESTORABLE")
exit()
for i in range(len(s) - 1, len(s) - len(t) + 1, -1):
if flag:
break
tmp = 0
for j in range(len(t)):
if si-j == "?" or si-j == tlen(t) - 1- j:
tmp += 1
if tmp == len(t):
position = i
flag = True
break
if position == -1:
print("UNRESTORABLE")
else:
for i in range(len(s) - 1, -1, -1):
if i == position:
for j in range(len(t)):
si-j = tlen(t) - 1- j
else:
if si == "?":
si = "a"
print("".join(s))